home *** CD-ROM | disk | FTP | other *** search
Text File | 1999-06-06 | 1000 b | 46 lines | [TEXT/CWIE] |
- // Copyright (C) 1999 Eric Roccasecca. All rights reserved.
-
- #include "X_Ray_Priv.h"
-
- UniversalProcPtr gOldMenuSelect, gMenuSelectUPP;
-
- extern short X_RayDrawLevel;
-
- enum {
- kMenuSelectProcInfo = kPascalStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(long)))
- | REGISTER_RESULT_LOCATION(kRegisterD0)
- | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(Point)))
- };
-
- pascal long X_Ray_MenuSelect (Point startPt);
-
-
- Boolean ApplyMenuPatches (void)
- {
- // Apply patch to MenuSelect
- gOldMenuSelect = NGetTrapAddress (_MenuSelect, ToolTrap);
- gMenuSelectUPP = NewRoutineDescriptor ((ProcPtr)X_Ray_MenuSelect, kMenuSelectProcInfo, kPowerPCISA);
- if (gMenuSelectUPP)
- NSetTrapAddress (gMenuSelectUPP, _MenuSelect, ToolTrap);
- else
- return false;
-
- return true;
- }
-
-
- // suppresses X_Ray during menu drawing
- pascal long X_Ray_MenuSelect (Point startPt)
- {
- long result;
-
- X_RayDrawLevel++;
-
- result = CallUniversalProc (gOldMenuSelect, kMenuSelectProcInfo, startPt);
-
- X_RayDrawLevel--;
-
- return result;
- }
-